---
title: "Contribution Guide"
description: Over 50 accessible components, neatly organized into sections, ensuring usability and ease of access for everyone. Perfect for a range of applications and users.
order: 3
published: true
---

## Contribution Guide

Thanks for jumping in to contribute at intentui.com. We’re thrilled to have you on board!

Quick ask: take a moment to review this doc before submitting your first pull request. Also, check out the open issues and pull requests to avoid doubling up on any efforts.

## Getting Started

1. Fork the repository.
2. Clone the forked repository.
3. Create a file `.env` and make sure it has the following content: `NEXT_PUBLIC_APP_V1_URL=https://1x.intentui.com`
4. Install the dependencies with `bun run first-time`.
5. Create a new branch: `git checkout -b features`.
6. Make your changes.
7. And add all: `git add .`
8. Then you need to run `bun cz` to make a reason and stuff like that
9. Push and submit a pull request.

## How to Contribute

### Reporting Bugs

Before creating bug reports, please check the existing issues as you might find out that you don't need to create one. When you are creating a bug report, please include as many details as possible.

### Suggesting Enhancements

Enhancement suggestions are tracked as GitHub issues. When you are creating an enhancement suggestion, please include as many details as possible.

### Pull Requests

Please follow these guidelines when submitting pull requests:

1. Fork the repository and create your branch from `main`.
2. Run `bun run lint` to check your code for linting errors.
3. If you've added code that should be tested, add tests.
4. Format your code with `bun run format`.
5. Ensure everything is working as expected by running `bun run b` which will build the registry and generate the sidebar.
6. Make sure your code lints.
7. Make sure your commit messages are clear.

## Folder Structure

The folder structure is essential for grasping the codebase and understanding the underlying workflow.

### Components
The `components` folder forms the backbone of the project, housing the `ui`, `docs`, and `blocks` directories.
```
components
├── blocks
├── code
├── docs
│   ├── anatomies
│   ├── buttons ...
│   ├── charts ...
│   ├── collections ...
│   ├── colors ...
│   ├── controls ...
│   ├── date-and-time ...
│   ├── drag-and-drop ...
│   ├── forms ...
│   ├── media ...
│   ├── navigation ...
│   ├── outside ...
│   ├── overlays ...
│   ├── pickers ...
│   ├── statuses ...
│   └── surfaces ...
├── experimental
└── ui
```
The core ui is inside `components/ui`, and the demo you see on the docs is inside `components/docs`.

### Registry
The registry is a file that contains all the components and their files. It is used to generate the `demo`, `ui`, `blocks` and `anatomies` on the docs.
```
public/registry
├── anatomies
├── blocks
│   ├── navbar ...
│   └── sidebar ...
├── demo
│   ├── buttons ...
│   ├── charts ...
│   ├── collections ...
│   ├── colors ...
│   ├── controls ...
│   ├── date-and-time ...
│   ├── drag-and-drop
│   ├── forms ...
│   ├── media
│   ├── navigation ...
│   ├── outside
│   ├── overlays ...
│   ├── pickers ...
│   ├── statuses ...
│   └── surfaces ...
├── docs
│   └── installation
└── ui
```

All of this is generated by the `resources/scripts/build-registry.ts` script by running `bun run b`.

## Code of Conduct

The Intent code of conduct is inspired by the Laravel and Ruby code of conduct. Any violations of this code may be reported to Irsyad (irsyad@parsinta.com):

- Participants will respect and be tolerant of differing views and opinions.
- Participants must ensure that their language and actions remain professional and free of personal attacks or disparaging remarks.
- When interpreting the words and actions of others, participants should always assume good intentions.
- Behavior that can reasonably be considered harassment or discrimination will not be tolerated.

## License

By contributing to Intent, you agree that your contributions will be licensed under its MIT license.
